JsonNode এর ব্যবহার

Java Technologies - জ্যাকসন (Jackson) - JSON Tree Model ব্যবহার
176

Jackson এর JsonNode ক্লাস একটি ট্রি-বেসড মডেল সরবরাহ করে, যা JSON ডেটাকে ObjectNode এবং ArrayNode আকারে প্রতিনিধিত্ব করে। এটি মূলত JSON ডেটার ডাইনামিক বা অজানা স্ট্রাকচারের সাথে কাজ করতে সাহায্য করে।


JsonNode এর প্রধান সুবিধাসমূহ

  1. ডাইনামিক JSON পার্সিং: JSON স্ট্রাকচার না জেনেও ডেটা অ্যাক্সেস ও মডিফাই করা।
  2. ডেটার নির্দিষ্ট অংশ অ্যাক্সেস করা: JSON ডেটা থেকে নির্দিষ্ট প্রোপার্টি বা ভ্যালু পড়া।
  3. নেস্টেড ডেটা নিয়ে কাজ: JSON এর নেস্টেড অবজেক্ট বা অ্যারে সহজে ম্যানেজ করা।
  4. Serialization এবং Deserialization সহজ করা।

JsonNode তৈরি করা

ObjectMapper এর মাধ্যমে JSON ডেটাকে JsonNode তে রূপান্তর করা যায়।

উদাহরণ ১: JSON থেকে JsonNode তৈরি

import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;

public class JsonNodeExample {
    public static void main(String[] args) throws Exception {
        String jsonString = "{ \"name\": \"Alice\", \"age\": 25, \"skills\": [\"Java\", \"Python\"] }";

        ObjectMapper mapper = new ObjectMapper();
        JsonNode rootNode = mapper.readTree(jsonString);

        // JSON নোড প্রিন্ট করা
        System.out.println(rootNode);
    }
}

Output:

{"name":"Alice","age":25,"skills":["Java","Python"]}

ডেটা অ্যাক্সেস এবং ম্যানিপুলেশন

১. নির্দিষ্ট প্রোপার্টি অ্যাক্সেস করা

String name = rootNode.get("name").asText();
int age = rootNode.get("age").asInt();

System.out.println("Name: " + name); // Output: Alice
System.out.println("Age: " + age);   // Output: 25

২. অ্যারের ডেটা অ্যাক্সেস করা

JsonNode skillsNode = rootNode.get("skills");
for (JsonNode skill : skillsNode) {
    System.out.println("Skill: " + skill.asText());
}
// Output:
// Skill: Java
// Skill: Python

৩. নেস্টেড প্রোপার্টি অ্যাক্সেস করা

String nestedJson = "{ \"user\": { \"name\": \"Bob\", \"address\": { \"city\": \"Dhaka\" } } }";
JsonNode nestedRoot = mapper.readTree(nestedJson);

String city = nestedRoot.get("user").get("address").get("city").asText();
System.out.println("City: " + city); // Output: Dhaka

JSON মডিফিকেশন

১. নতুন প্রোপার্টি যোগ করা

import com.fasterxml.jackson.databind.node.ObjectNode;

ObjectNode objectNode = (ObjectNode) rootNode;
objectNode.put("country", "Bangladesh");

System.out.println(objectNode.toString());
// Output: {"name":"Alice","age":25,"skills":["Java","Python"],"country":"Bangladesh"}

২. প্রোপার্টি মুছে ফেলা

objectNode.remove("age");

System.out.println(objectNode.toString());
// Output: {"name":"Alice","skills":["Java","Python"],"country":"Bangladesh"}

Serialization (Object থেকে JSON)

JsonNode কে JSON স্ট্রিং এ রূপান্তর করা:

String jsonString = mapper.writeValueAsString(rootNode);
System.out.println(jsonString);

JSON Validation

JsonNode ব্যবহার করে ডেটা যাচাই করা:

if (rootNode.has("name")) {
    System.out.println("Name exists.");
}
if (!rootNode.has("address")) {
    System.out.println("Address does not exist.");
}
// Output:
// Name exists.
// Address does not exist.

  • JsonNode ডাইনামিক JSON ডেটার সাথে কাজ করার জন্য উপযোগী।
  • সহজে JSON ডেটা অ্যাক্সেস, আপডেট, এবং যাচাই করা যায়।
  • ObjectNode এবং ArrayNode ক্লাস ব্যবহার করে JSON এর অবজেক্ট এবং অ্যারে ম্যানিপুলেট করা যায়।
  • এটি API ডেভেলপমেন্ট, কনফিগারেশন ফাইল হ্যান্ডলিং এবং JSON ডেটার গভীর স্ট্রাকচারের সাথে কাজ করার ক্ষেত্রে অনেক কার্যকর।
Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...